/*****************************************************
封装小车在场地中的整体执行流程部分. 
包含小车从出发点到二维码区域、
到物料检测及抓取的识别区域、到第一个放置区、到第二个放置区
*****************************************************/

//管理小车流程程序部分
void process_manager(){
  #ifdef DEBUG_CAR_CORRING_DETECT
    corring_detection_test_now();
  #else
    ///*
    //小车走到二维码区域=============================================================================
    Serial.println("小车从出发点开始,运动到二维码区域动作开始");
    car_moves_to_the_QR_code_area(); //小车走到二维码区域
    Serial.println("小车从出发点开始,运动到二维码区域动作结束");
    // while(1){delay(10);}


    //小车识别二维码=================================================================================
    Serial.println("小车视觉模块检测二维码动作开始");
    car_detect_qr();  //小车开始识别二维码,并将二维码信息保存下来
    Serial.println("小车视觉模块检测二维码动作结束");
    // while(1){delay(10);}

    //处理二维码数据.将二维码信息转换为抓取和放置物料顺序==============================================
    Serial.println("处理二维码信息动作开始");
    process_qr_msg();//处理二维码数据
    Serial.println("处理二维码信息动作结束");
    // while(1){delay(10);}


    //小车走到轮盘区域==============================================================================
    Serial.println("小车运动到轮盘区域动作开始");
    arm_keep_init_state();//机械臂恢复到初始化动作
    car_move_to_wheel_area(); //小车走到轮盘区域
    Serial.println("小车运动到轮盘区域动作结束");
    //while(1){delay(10);}


    //小车开始判断物料抓取顺序======================================================================
    Serial.println("小车开始判断物料抓取顺序动作开始");
    arm_detect_and_catch_material(); //小车识别物料区域的物料，并根据二维码顺序抓取物料
    Serial.println("小车开始判断物料抓取顺序动作结束");
    //while(1){delay(10);}

    //小车走到物料放置区域==========================================================================
    car_moves_to_the_material_put_area(); //小车走到物料放置区域
    // while(1){delay(10);}
    
    //*/

    //小车校准位置，检测色环并放置色环==========================================================================
    car_judge_and_detect_colorring();
    // while(1){delay(10);}

    //小车移动到第二个色环区域
    car_move_to_second_colorring_area();

    //小车回到出发区域
    car_move_to_start_area();
  #endif
}

